草庐IT

c++ - 复制 boost::shared_ptr

全部标签

c - 为什么 AssignProcessToJobObject 在 XP 上失败并出现拒绝访问错误?

我有以下代码:#include#include#include#pragmacomment(lib,"shlwapi.lib")int__cdeclwmain(intargc,PWSTRargv[]){HANDLEJob(CreateJobObject(NULL,NULL));if(!Job){wprintf(L"Couldnotcreatejobobject,error%d\n",GetLastError());return0;}HANDLEIOPort(CreateIoCompletionPort(INVALID_HANDLE_VALUE,NULL,0,1));if(!IOPort

windows - 使用Rundll32复制SUBST的功能

我一直在尝试使用rundll32复制函数subst.exe(用于映射驱动器的Windows应用程序)。我知道使用了DefineDOSDevice并且我知道要传递哪些参数,但我就是无法让它工作。假设我想将C:\ProgramFiles映射为Z:rundll32.exekernel32.dll,DefineDosDeviceA***我尝试以我认为正确的形式传递所有参数,但没有成功。如果有人能为我提供将程序文件映射到Z:usingrundll32的工作语法,我将非常高兴。提前致谢。 最佳答案 Rundll32不是通用的“运行导出函数”实用

c - kbhit() 作为转义触发器

我想将kbhit()用于“按任意键继续”功能。但是,在循环中使用kbhit()之后,按下的键存储在标准输入中。所以在下一个scanf()中,之前按下的键出现在输入中。intx,b=0;printf("Pressanykeytocontinue...")while(b==0){b=kbhit();}system("cls");printf("Enternumber:");scanf("%d",&x);因此,如果用户按下一个键,比如说字母K,k会出现在“输入数字:”之后。我曾尝试寻找解决方案,但未能使任何解决方案奏效。我试图将退格字符放入输入流中。我也尝试使用getch(),但是,用户必须

c - 为什么 PsGetCurrentProcessId() 返回 null?

我遇到了一个奇怪的问题:在“系统”进程的一个线程中,我调用了PsGetCurrentProcessId(),但得到了一个空值。此外,我检查了线程的_CLIENT_ID,发现UniqueProcess和UniqueThread都是null。我还检查了当前进程,即'system'进程,发现它的UniqueProcessId为4,这是正常的。为什么? 最佳答案 系统进程ID是一个非常好的“hack”,因此多个工具(例如ProcExp、windbg)不必处理特殊情况的仅内核线程或空闲函数调度程序。如果你是一个只有内核的线程,你就没有关联的进

c - 启动时自动启动过程

我正在为我的大学制作一个CloudDrive程序(例如dropbox,但更简单),它允许用户自动上传文件到服务器并与其他用户共享我想做一个选项,这样如果有人启动机器,进程就会自动启动我想我必须做的是在注册表中的键处添加一个条目:HKEY_LOCAL_MACHINE/sofware/Windows/CurrentVersion/Run我写了这些代码行:system("REGADDHKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\Run/vuCloud.exe/tREG_SZ/d\"C:\\Desktop\\

python - 复制大文件时 os.stat 不更新

我正在使用stat检查文件是否仍在传输,但它不起作用。如果我通过网络复制一个大文件(数百GB,可能需要几分钟)并运行脚本fromosimportstatfromtimeimportsleepWhileTrue:stat("thefile.foo")sleep(2)我希望看到时间或大小发生变化,但它保持不变。还有什么我可以用来检查文件是否仍在传输的吗?不幸的是,这是在Windows服务器上。我试过这个脚本,实际读取文件:importsysfinished=Falseoldgb=0whilenotfinished:f=open(thefile,"rb")samp=f.read(1)gb=0

c - 键盘映射的后台c程序

我在我的windows8系统中安装了一个BrammaTTF文件。通过windows字符映射表,我能够找到单个字符代码。下面附上map截图。我们可以在右下方看到“!”的字符代码。是0x21。同样,我可以找到所有其他字母的所有字符代码。现在,我使用基于美国的键盘布局为该字体定义了一个字符映射。例如,我将键盘中的物理字符“a”映射到第3行和第1列中显示的字符。[每当我从键盘上按'a'时,必须显示相应的字符]我想编写一个后台C程序,以便它监听键盘敲击,并且根据我之前定义的字符映射,我的C程序应该输出映射的字符。即,当我从键盘敲击字符“a”时,它应该返回映射的字符。谁能帮我解决这个问题,或者只是

C、Windows API 根据注册表项创建文件夹结构

所以我试图在注册表项之后创建一个文件夹结构。这是我到目前为止所做的#include"stdafx.h"#include"windows.h"#defineMAX_KEY_LENGTH200#defineMAX_VALUE_NAME16383DWORDretCode;voidRecursiveQueryKey(HKEYhKey){HKEYnextKey;WCHARachKey[MAX_KEY_LENGTH];DWORDcbName;DWORDretCode=NULL;DWORDi=0;while(retCode!=ERROR_NO_MORE_ITEMS){cbName=MAX_KEY_L

c++ - 如何打开只有 FILE_READ_ATTRIBUTES 权限的文件?

我想从非管理员程序发出FSCTL_GET_NTFS_VOLUME_DATA控制代码。该文档说“打开卷时,FILE_READ_ATTRIBUTES或FILE_WRITE_ATTRIBUTES访问权限就足够了”,所以我相信这应该是可能的。我尝试了路径和卷路径:"\.\C:""\?\Volume{4f26a671-c36e-11e2-913d-806e6f6e6963}"虽然我可以打开它们,但对DeviceIOControl的调用将仅适用于GENERIC_READ|GENERIC_WRITE。这是代码:intmain(){char*mount="\\\\.\\C:";HANDLEhHandl

为两个不同的进程创建共享内存

因此,我尝试在C程序中创建一个共享内存段,这样我就可以在其中写入一个简单的字符,然后从另一个C程序中读取该字符。我一直在尝试使用calloc()和malloc()但我相信这只适用于该程序自己的heap.是否有另一个函数可以做同样的事情,但在RAM内存中?也许通过十六进制值?还是我错了,这些函数实际上保留了对所有进程可见的内存?提前致谢。编辑:-我正在使用Windows8。-语言不限于C,可以是任何其他语言。 最佳答案 有很多InterprocessCommunications当您需要在隔离的进程之间传输数据时,您可以选择。共享一bl